<?php
	require_once("../modelo/DAO/PedidoDao.php");
	require_once("../config.php");
	require_once("../modelo/Entidad/Producto.php");
	require_once("../modelo/Entidad/Pedido.php");
	class PedidoDaoIMP extends Modelo implements PedidoDao{

		public function obtenerPedidoPorDNIEID($p,$c){
			$query = "SELECT CLIE_ID
				FROM cliente c
				WHERE c.DNI = '=".$c->getDNI()."';
			";
			echo $query."<br>";
			$res = parent::execute($query);

			if($res){
				if(mysql_num_rows($res)==1){
					$f = mysql_fetch_array($res);
					$c->setId($f['CLIE_ID']);

					$query="SELECT PEDI_ID,PEDI_FECHA,PEDI_ESTADO
						FROM pedido p
						WHERE p.PEDI_ID = '".$p->getPedidoID()."' AND
						p.CLIE_ID ='".$c->getId()."'
						;";

					echo $query."<br>";
					$res = parent::execute($query);

					if($res){
						if(mysql_num_rows($res)==1){
							$f = mysql_fetch_array($res);
							$p->setClienteId($f['CLIE_ID']);
							$p->setFecha(strtotime($f['PEDI_FECHA']));
							$p->setEstado($f['PEDI_ESTADO']);
							$p->setMonto($f['PEDI_MONTO']);


							return $p;
						}
					}
				}
			}


			return null;

		}
		public function registrarPedido($c,$arr){
			$pedido=new Pedido();


			///////////////////////////////////////////////////////////////////
			//Obtengo verificar si el cliente existe, si no existe insertarlo//

			$query = "SELECT CLIE_ID
				FROM cliente c
				WHERE c.CLIE_DNI = '".$c->getDNI()."';
			";

			echo "<br>".$query."<br>";
				$res = parent::execute($query);
				
				echo "<br>";
				var_export($res);
				echo "<br>";

				if($res)
				{
					if(mysql_num_rows($res)<1){
					echo "<br> ENTRO POR FIN <br>";
					$query = "INSERT INTO cliente (
							CLIE_ID, 
							CLIE_DNI, 
							CLIE_NOMBRES, 
							CLIE_APELLIDOS, 
							CLIE_EMAIL, 
							CLIE_VALOR,
							CLIE_TELEFONO, 
							CLIE_DIRECCION)
						VALUES (
							null,".
							$c->getDNI().",'".
							$c->getNombres()."','".
							$c->getApellidos()."','".
							$c->getEmail()."',".
							$c->getValor().",".
							$c->getTelefono().",'".
							$c->getDireccion()."')
						;";

					echo "<br>".$query."<br>";
					$res = parent::execute($query);
				}
				}else{
					echo "NO ES NULO POR RAZONES DESCONOCIDAS";
				}
			
			////////////////////////////////////////////////////////////////////

			////////////////////////////////////////////////////////
			//Obtengo el ID del cliente para poder crear el Pedido//
			$query = "SELECT 	c.CLIE_ID
				FROM 	cliente c 
				WHERE 	c.CLIE_DNI='".$c->getDNI()	."'
				";

			echo "<br>".$query."<br>";
			$res = parent::execute($query);

			if($res){
				if(mysql_num_rows($res)==1)
				{
					$f = mysql_fetch_array($res);
					$c->setId($f['CLIE_ID']);
				}
			}else{
				return false;
			}
			$pedido->setClienteId($c->getID());
			/////////////////////////////////////////////////////////



			////////////////////////////////////////////////////////////////////////
			//Obtengo la lista de productos para obtener el monto final del pedido//
			$query = "SELECT p.PROD_ID,p.PROD_PRECIO_UNITARIO
				FROM producto p
				WHERE 1
				";

			echo "<br>".$query."<br>";
			$res = parent::execute($query);
			$prodArr=null;

			if($res){
				for($i=0;$i<mysql_num_rows($res);$i++)
				{
					$f = mysql_fetch_array($res);
					$prod=new Producto();
					$prod->setId($f['PROD_ID']);
					$prod->setPrecioUnitario($f['PROD_PRECIO_UNITARIO']);
					$prodArr[$i]=$prod;
				}
			}
			else
			{
				return false;
			}
			$monto=0;
			$cantidad=count($arr);
			for($i=0;$i<$cantidad;$i++){
				$p=$arr[$i];
				$cantidadProd=count($prodArr);
				for($j=0;$j<$cantidadProd;$j++){
					$pAux=$prodArr[$j];
					if($pAux->getId()==$p->getProductoId()){

						$monto+=($pAux->getPrecioUnitario()*$p->getUnidades());
					}
				}
			}
			$pedido->setMonto($monto);
			////////////////////////////////////////////////////////////////////////

			//////////////////////
			//Insertar el pedido//
			$query = "INSERT INTO pedido (
				PEDI_ID, 
				CLIE_ID, 
				PEDI_FECHA, 
				PEDI_ESTADO, 
				PEDI_MONTO) 
				VALUES (null,".$c->getId().",NOW(),'P',".$pedido->getMonto().")
				";

			echo "<br>".$query."<br>";
			$res = parent::execute($query);
			//////////////////////

			////////////////////////////
			//Obtener el id del pedido//
			$query = "SELECT p.PEDI_ID
				FROM pedido p
				WHERE 1
				";

			echo "<br>".$query."<br>";
			$res = parent::execute($query);

			//ADVERTENCIA PARA EL FUTURO: ESTO SOLO FUNCIONA EN SITUACIONES IDEALES NO CONCURRENTES
			if($res){
				for($i=0;$i<mysql_num_rows($res);$i++)
				{
					$f = mysql_fetch_array($res);
					if($i==mysql_num_rows($res)-1)
					{
						$pedido->setPedidoId($f['PEDI_ID']);
					}
				}
			}
			////////////////////////////

			//////////////////////////////////////
			//Insertar dentro de detalles pedido//
			$cantidad=count($arr);
			for($i=0;$i<$cantidad;$i++){
				$p=$arr[$i];
				$query = "INSERT INTO detalle_pedido(
							PEDI_ID, 
							PROD_ID, 
							UNIDADES) 
						VALUES (".
							$pedido->getPedidoID().",".
							$p->getProductoId().",".
							$p->getUnidades().")
				";
				echo "<br>".$query."<br>";
				$res = parent::execute($query);


			}





		}
		public function validarPedido($p){

		}
		public function cambiarEstado($p){

		}

/*
		public function verificarCliente($cl){
			$qry = "SELECT 	p.PEDI_ID, c.CLIE_NOMBRES  
				FROM 	pedido p, cliente c 
				WHERE 	p.PEDI_ID='".$cl->getId()."' AND
						c.CLIE_DNI='".$cl->getDNI()	."' AND
						c.CLIE_ID = p.CLIE_ID";
			$res = parent::execute($qry);
			if($res){
				if(mysql_num_rows($res)==1)
				{
					$f = mysql_fetch_array($res);
					$cl->setId($f['CLIE_ID']);
					$cl->setNombre($f['CLIE_NOMBRES']);
					$cl->setApellidos($f['CLIE_APELLIDOS']);
					$cl->setDNI($f['CLIE_DNI']);
					$cl->setEmail($f['CLIE_EMAIL']);
					$cl->setValor($f['CLIE_VALOR']);
					$cl->setTelefono($f['CLIE_TELEFONO']);
					$cl->setDireccion($f['CLIE_DIRECCION']);
					return $cl;
				}				
			}
			return null;
		}*/


	}
?>